/*
* ISessionSummary.java
*
* Created on July 24, 2001, 11:21 AM
*/

/*
(C) Copyright MarketLive. 2006. All rights reserved.
MarketLive is a trademark of MarketLive, Inc.
Warning: This computer program is protected by copyright law and international treaties.
Unauthorized reproduction or distribution of this program, or any portion of it, may result
in severe civil and criminal penalties, and will be prosecuted to the maximum extent
possible under the law.
*/

package org.marketlive.entity.session;

import org.marketlive.entity.IEntity;
import org.marketlive.entity.IPrimaryKey;
import java.sql.Timestamp;

/**
 * Holds summary information about the session.
 * @deprecated 
 */
public interface ISessionSummary extends IEntity {

  /**
   * Unique session identifier.
   */
  Integer getSessionID();


  /**
   * Sets a unique session identifier.
   *
   * @param name session identifier
   */
  void setSessionID(Integer name);

  /**
   * Returns the session start time.
   *
   * @return the start time for the session
   */
  Timestamp getStartTime();

  /**
   * Sets the session start time.
   *
   * @param date the start time
   */
  void setStartTime(Timestamp date);

  /**
   * Returns the session end time.
   *
   * @return the session end time
   */
  Timestamp getEndTime();

  /**
   * Sets the session end time.
   *
   * @param date the session end time
   */
  void setEndTime(Timestamp date);

  /**
   * Returns the customer's primary key.
   *
   * @return the customer primary key
   */
  IPrimaryKey getCustomerPK();

  /**
   * Sets the customer's primary key.
   *
   * @param custPK customer's primary key
   */
  void setCustomerPK(IPrimaryKey custPK);

  /**
   * Returns the first page the user landed on for this site.
   *
   * @return the first page the user landed on for this site
   */
  String getEntryPage();

  /**
   * Sets the first page the user landed on for this site.
   *
   * @param entryPage first page the user landed on for this site
   */
  void setEntryPage(String entryPage);

  /**
   * Returns the last page the user requested before leaving this site.
   *
   * @return the last page the user requested before leaving this site
   */
  String getExitPage();

  /**
   * Sets the last page the user requested before leaving the site.
   *
   * @param exitPage the last page the user requested before leaving the site
   */
  void setExitPage(String exitPage);

  /**
   * Returns the URL the user came to this site from.
   *
   * @return the URL the user came to this site from
   */
  String getReferrer();

  /**
   * Sets the URL the user came to this site from.
   *
   * @param referrer the URL the user came to this site from
   */
  void setReferrer(String referrer);

  /**
   * Returns the Browser type the user is using.
   *
   * @return the Browser type the user is using
   */
  String getBrowser();

  /**
   * Sets the Browser type the user is using.
   *
   * @param browser the Browser type the user is using
   */
  void setBrowser(String browser);

  /**
   * Returns the source IP of the user. Used to eliminate site monitoring records.
   *
   * @return the source IP of the user
   */
  String getSourceIP();

  /**
   * Sets the source IP of the user. Used to eliminate site monitoring records.
   *
   * @param sourceIP the source IP of the user
   */
  void setSourceIP(String sourceIP);

  /**
   * Returns whether this session's data will be included in reports.
   * <p>
   * NOTE: This is used to eliminate records from the reports that should not be reported on.
   *
   * @return true if this session's data will not be included in reports, false if it will be included
   */
  Boolean getNoReport();

  /**
   * Sets whether this session's data will be included in reports.
   * <p>
   * NOTE: This is used to eliminate records from the reports that should not be reported on.
   *
   * @param noReport true if this session's data will not be included in reports, false if it will be included
   */
  void setNoReport(Boolean noReport);
}
